---
title: DCMI_MAIN_CMD_TS命令说明
description: "int dcmi_get_device_info(int card_id, int device_id, enum dcmi_main_cmd main_cmd, unsigned int sub_cmd, void *buf, unsigned int *size)"
url: https://www.hiascend.com/document/detail/zh/Atlas%20200I%20A2/latest/re/api/api_070.html
sourcePath: /source/zh/Atlas 200I A2/260RC1/re/api/api_070.html
indexId: d17d23fb8bb96cd990dcf55eeb540dde50f913a50eb5849b20f218aae734add651
---
# DCMI_MAIN_CMD_TS命令说明

#### 函数原型

int dcmi_get_device_info(int card_id, int device_id, enum dcmi_main_cmd main_cmd, unsigned int sub_cmd, void *buf, unsigned int *size)


#### 功能说明

获取系统中TS相关信息。


#### 参数说明

| 参数名称 | 输入/输出 | 类型 | 描述 |
| --- | --- | --- | --- |
| card\_id | 输入 | int | 设备ID，当前实际支持的ID通过dcmi\_get\_card\_list接口获取。 |
| device\_id | 输入 | int | 芯片ID，通过dcmi\_get\_device\_id\_in\_card接口获取。取值范围如下： NPU芯片：[0, device\_id\_max\-1]。 |
| main\_cmd | 输入 | enum dcmi\_main\_cmd | DCMI\_MAIN\_CMD\_TS |
| sub\_cmd | 输入 | unsigned int | typedef enum { // 获取 AICORE 的单核利用率，正常值范围0\-100 DCMI\_TS\_SUB\_CMD\_AICORE\_UTILIZATION\_RATE = 0, // 获取 VECTOR CORE 的单核利用率/获取AICORE单核中Vector单元利用率，正常值范围0\-100 DCMI\_TS\_SUB\_CMD\_VECTORCORE\_UTILIZATION\_RATE, // 获取FFTS或者FFTS+的类型，0表示FFTS，1表示FFTS+ DCMI\_TS\_SUB\_CMD\_FFTS\_TYPE, // 设置硬件屏蔽AICORE ERR的掩码 DCMI\_TS\_SUB\_CMD\_SET\_FAULT\_MASK, // 获取硬件屏蔽AICORE ERR的掩码 DCMI\_TS\_SUB\_CMD\_GET\_FAULT\_MASK, DCMI\_TS\_SUB\_CMD\_MAX, } DCMI\_TS\_SUB\_CMD; 不支持DCMI\_TS\_SUB\_CMD\_SET\_FAULT\_MASK、DCMI\_TS\_SUB\_CMD\_GET\_FAULT\_MASK。 说明： 开启profiling时，查询单核利用率结果为0xEF。 |
| buf | 输出 | void \* | 用于接收设备信息的返回值。 |
| size | 输入/输出 | unsigned int \* | buf数组的输入/输出长度。 |


#### 返回值说明

| 类型 | 描述 |
| --- | --- |
| int | 处理结果： 成功：返回0。 失败：返回码请参见返回码。 |


#### 异常处理

无。


#### 约束说明

查询Vector Core的单核利用率时，buf至少为50字节内存空间，查询AI Core的单核利用率时，buf至少为25字节空间。


**表1 sub_cmd对应的buf格式**

| sub\_cmd | buf对应的数据类型 | size |
| --- | --- | --- |
| DCMI\_TS\_SUB\_CMD\_AICORE\_UTILIZATION\_RATE、DCMI\_TS\_SUB\_CMD\_VECTORCORE\_UTILIZATION\_RATE | 查询Vector Core的单核利用率时， buf至少为50字节内存空间，查询AI Core的单核利用率时，buf至少为25字节空间。 异常值： 0xEE：表示对应的core损坏； 0xEF：无效值； 出参时每个字节表示一个核的利用率，正常范围0\-100 | 作为入参时表示buf的大小。 作为出参时表示buf内填充的有效值的个数。 |
| DCMI\_TS\_SUB\_CMD\_FFTS\_TYPE | unsigned int | unsigned int |


**表2 不同部署场景下的支持情况**

| 物理机场景（裸机） | 物理机场景（裸机） | 物理机+普通容器场景 |
| --- | --- | --- |
| root用户 | 运行用户组（非root用户） | root用户 |
| Y | Y | Y |
| 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 | 注：Y表示支持；N表示不支持；NA表示不涉及，当前未规划此场景。 |


#### 调用示例

```
…
int ret;
int card_id = 0;
int dev_id = 0;
void *buf = NULL;
int buf_size = 10;
buf = calloc(buf_size, sizeof(char));
if (buf == NULL) {
printf("calloc buf failed.\n");
return -1;
}
ret = dcmi_get_device_info(card_id,dev_id,DCMI_MAIN_CMD_TS, DCMI_TS_SUB_CMD_AICORE_UTILIZATION_RATE, buf, &buf_size);
if (ret != 0) {
printf("dcmi_get_device_info failed, ret = %d.\n", ret);
return -1;
}
return 0;
…
```
